package entities;

import java.util.*;

public class Sistema {
	
	private static Vector <Cliente> clientes;
	private static Vector <Maquina> maquinas;
	private static Vector <Profesor> profesores;
	private static Vector <Rutina> rutinas;
	private static Vector <Ejercicio> ejercicios;
	private static Vector <CuotaPaga> cuotasPagas;
	private static Vector <Clase> clases;
	private static Vector <Locker> lockers;
	private static Vector <OpcionDias> opcionesDias;
	private static Vector <OpcionHoraria> opcionesHorarios;
	private static Vector <DatosFisicos> datosFisicosClientes;
	
	public Sistema() {
		super();
	}

	

	public static Vector<Cliente> getClientes() {
		return clientes;
	}



	public static void setClientes(Vector<Cliente> clientes) {
		Sistema.clientes = clientes;
	}



	public static Vector<Maquina> getMaquinas() {
		return maquinas;
	}



	public static void setMaquinas(Vector<Maquina> maquinas) {
		Sistema.maquinas = maquinas;
	}



	public static Vector<Profesor> getProfesores() {
		return profesores;
	}



	public static void setProfesores(Vector<Profesor> profesores) {
		Sistema.profesores = profesores;
	}



	public static Vector<Rutina> getRutinas() {
		return rutinas;
	}



	public static void setRutinas(Vector<Rutina> rutinas) {
		Sistema.rutinas = rutinas;
	}



	public static Vector<Ejercicio> getEjercicios() {
		return ejercicios;
	}



	public static void setEjercicios(Vector<Ejercicio> ejercicios) {
		Sistema.ejercicios = ejercicios;
	}



	public static Vector<CuotaPaga> getCuotasPagas() {
		return cuotasPagas;
	}



	public static void setCuotasPagas(Vector<CuotaPaga> cuotasPagas) {
		Sistema.cuotasPagas = cuotasPagas;
	}



	public static Vector<Clase> getClases() {
		return clases;
	}



	public static void setClases(Vector<Clase> clases) {
		Sistema.clases = clases;
	}



	public static Vector<Locker> getLockers() {
		return lockers;
	}



	public static void setLockers(Vector<Locker> lockers) {
		Sistema.lockers = lockers;
	}



	public static Vector<OpcionDias> getOpcionesDias() {
		return opcionesDias;
	}



	public static void setOpcionesDias(Vector<OpcionDias> opcionesDias) {
		Sistema.opcionesDias = opcionesDias;
	}



	public static Vector<OpcionHoraria> getOpcionesHorarios() {
		return opcionesHorarios;
	}



	public static void setOpcionesHorarios(Vector<OpcionHoraria> opcionesHorarios) {
		Sistema.opcionesHorarios = opcionesHorarios;
	}



	public static Vector<DatosFisicos> getDatosFisicosClientes() {
		return datosFisicosClientes;
	}



	public static void setDatosFisicosClientes(
			Vector<DatosFisicos> datosFisicosClientes) {
		Sistema.datosFisicosClientes = datosFisicosClientes;
	}



	public static Cliente buscarClienteDoc (int nroDoc){
		Cliente cliente = new Cliente();
		for (Cliente c : clientes){
			if (c.getNroDoc() == nroDoc){
				cliente = c;
			}
		}
		return cliente;
	}
	
	public static DatosFisicos buscarDFdeClientePorDoc (int nroDoc){
		DatosFisicos df1 = new DatosFisicos();
		for (DatosFisicos df2 : datosFisicosClientes){
			if (df2.getCliente().getNroDoc() == nroDoc){
				df1 = df2;
			}
		}
		return df1;
	}
	
	public static void actualizarDFdeCliente (DatosFisicos df){
		for (DatosFisicos df2 : datosFisicosClientes){
			if (df2.getCliente().getNroDoc() == df.getCliente().getNroDoc()){
				df2 = df;
			}
		}
	}
	
	public static void actualizarPagos (CuotaPaga cp){
		if (cuotasPagas == null){
			cuotasPagas = new Vector();
			cuotasPagas.addElement(cp);
		} else {
			boolean match = false;
			for (CuotaPaga cc : cuotasPagas){
				if (cc.getCliente().getNroDoc() == cp.getCliente().getNroDoc() && cc.getFechaVencimiento() == cp.getFechaVencimiento()){
					match = true;
				}
			}
			if (match != true){
				cuotasPagas.addElement(cp);
			}
		}
	}
	
	public static boolean verificarPago (CuotaPaga cp){
		boolean existePago = false;
		if (cuotasPagas == null){
			return existePago;
		} else {
			for (CuotaPaga cc : cuotasPagas){
				if (cc.getCliente().getNroDoc() == cp.getCliente().getNroDoc() && cc.getFechaVencimiento().compareTo(cp.getFechaVencimiento()) == 0){
					existePago = true;
				}
			}
		}
		return existePago;
	}
	
	public static Profesor buscarProfesorPorDoc (int nroDoc){
		Profesor p = new Profesor();
		for (Profesor p2 : profesores){
			if (p2.getNroDocProf() == nroDoc){
				p = p2;
			}
		}
		return p;
	}
	
	public static void actualizarProfesores (Profesor p){
		if (profesores == null){
			profesores = new Vector();
			profesores.addElement(p);
		} else {
			boolean match = false;
			for (Profesor pp : profesores){
				if (pp.getNombre().matches(p.getNombre())){
					match = true;
					pp = p;
				}
			}
			if (match != true){
				profesores.addElement(p);
			}
		}
	}
	

}
